#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <SDL/SDL.h>

#include "primitives.h"
#include "zombies.h"
#include "display.h"
#include "level.h"
#include "font.h"
#include "gfx.h"

static unsigned char clipboard[10];

void copytile()
{
    if(!st.bgedit) return;
    
    clipboard[st.cbpos]=mapdata[st.tilecode];
}

void pastetile()
{
    if(!st.bgedit) return;
    
    mapdata[st.tilecode]=clipboard[st.cbpos];
    updatetile(st.tilecode);
}

void nexttile()
{
    if(!st.bgedit) return;
    
    mapdata[st.tilecode]++;
    updatetile(st.tilecode);
}

void previoustile()
{
    if(!st.bgedit) return;
    
    mapdata[st.tilecode]--;
    updatetile(st.tilecode);
}

void drawselection()
{
    SDL_Rect dst;

    if(st.cbpos>9) st.cbpos=9;
    if(st.cbpos<0) st.cbpos=0;
    
    dst.w=dst.h=64;
    dst.x=st.cbpos*64+10;
    dst.y=30;

    SDL_DrawRect(screen,&dst,0xff0000);
}

void drawclipboard()
{
    int x;
    SDL_Rect src,dst;

    if(st.showclipboard)
    {
        src.w=src.h=64;
        dst.w=dst.h=64;

        for(x=0;x<10;x++)
        {
            src.x=(clipboard[x]&0x0F)<<6;
            src.y=(clipboard[x]&0xF0)<<2;
            dst.x=x*64+10;
            dst.y=30;
            
            SDL_BlitSurface(tileset,&src,screen,&dst);
            SDL_DrawRect(screen,&dst,0xffffff);
        }
     
        drawselection();
        drawtext("Clipboard Selector",10,10);
    }
}